//
//  TipTool.h
//  O2O-AccountManager
//
//  Created by 李良 on 16/2/16.
//  Copyright © 2016年 liliang. All rights reserved.
//


/*
 *  类说明： 弹出的提示视图类，包含alertView
 */
#import <Foundation/Foundation.h>
//#import "MJRefresh.h"

typedef enum{
    DGGTipStyle_Msg  = 0,//文字模式
    DGGTipStyle_Successful,//成功模式
    DGGTipStyle_Error,//错误模式
    DGGTipStyle_Warning,//警告模式
    DGGTipStyle_Prompt,//提示模式
    DGGTipStyle_Custom, //自定义模式
}DGGTipStyle;


extern NSArray *loadingGifImgArray;//加载gif图片数组

@class DLLoadingRunTip;
@interface TipTool : NSObject


/**
 弹出一个提示框
 
 @param msg 提示内容
 @param superVie 添加视图
 @param style 弹出状态
 */
+(void)showTipWithMsg:(NSString*)msg superView:(UIView *)superVie style:(DGGTipStyle)style;


/**
 在指定视图弹出一个文本弹出框
 
 @param text 弹出文字
 @param superVie 添加视图
 */
+(void)showMasTip:(NSString *)text superView:(UIView *)superVie;


/**
 在Window上弹出一个文本弹出框
 
 @param text 弹出文字
 */
+(void)showMasTip:(NSString *)text;

/**
 在Window上弹出一个文本弹出框，并显示详细信息，设置几秒后消失
 @param msg 弹出文字
 @param details 弹出文字描述
 @param style 弹出状态
 @param delay 几秒后消失
 */
+(void)showMasTipWithMsg:(NSString *)msg details:(NSString *)details style:(DGGTipStyle)style delay:(NSTimeInterval)delay;

/**
 在指定视图弹出一个错误弹出框
 
 @param text 弹出文字
 @param superVie 添加视图
 */
+(void)showMasErrorTip:(NSString *)text superView:(UIView *)superVie;

/**
 在Window上弹出一个错误弹出框
 
 @param text 弹出文字
 */
+(void)showMasErrorTip:(NSString *)text;

/**
 在指定视图弹出一个成功弹出框
 
 @param text 弹出文字
 @param superVie 添加视图
 */
+(void)showMasSuccessfulTip:(NSString *)text superView:(UIView *)superVie;

/**
 在Window上弹出一个成功弹出框
 
 @param text 弹出文字
 */
+(void)showMasSuccessfulTip:(NSString *)text;

/**
 在指定视图弹出一个警告弹出框
 
 @param text 弹出文字
 @param superVie 添加视图
 */
+(void)showWarningTip:(NSString *)text superView:(UIView *)superVie;

/**
 在Window上弹出一个警告弹出框
 
 @param text 弹出文字
 */
+(void)showWarningTip:(NSString *)text;

/**
 在指定视图弹出一个提示弹出框
 
 @param text 弹出文字
 @param superVie 添加视图
 */
+(void)showPromptTip:(NSString *)text superView:(UIView *)superVie;

/**
 在Window上弹出一个提示弹出框
 
 @param text 弹出文字
 */
+(void)showPromptTip:(NSString *)text;

/**
 在指定视图弹出一个自定义弹出框
 
 @param text 弹出内容
 @param superVie 添加视图
 @param image 图片名称
 */
+(void)showCustomTip:(NSString *)text superView:(UIView *)superVie image:(NSString *)image;
/**
 在window上弹出一个自定义弹出框
 
 @param text 弹出内容
 @param image 图片名称
 */
+(void)showCustomTip:(NSString *)text image:(NSString *)image;

/**
 在指定视图弹出一个默认文字加载框
 
 @param superView 添加视图
 */
+ (void)showLodingTipsuperView:(UIView *)superView;

/**
 在指定视图弹出一个自定义文字加载框
 
 @param text 弹出文字
 @param superView 添加视图
 */
+ (void)showLodingTip:(NSString *)text superView:(UIView *)superView;

/**
 在window上弹出一个默认加载框
 */
+ (void)showLodingTip;

/**
 隐藏所有弹框
 */
+ (void)hideTipView;

/**
 弹出一个AlertView
 
 @param title 标题
 @param message 说明
 @param btns 按钮数组
 @param colors 自定义颜色数组，不穿者使用默认颜色
 @param block 对应数组位置的回调
 */
+(void)showAlertViewWithTitle:(NSString*)title message:(NSString*)message btns:(NSArray*)btns block:(void(^)(NSInteger index))block;
+(void)showAlertViewWithTitle:(NSString*)title message:(NSString*)message btns:(NSArray*)btns colors:(NSArray <UIColor*>*)colors block:(void(^)(NSInteger index))block;
/**
 弹出一个带输入框的AlertView
 
 @param title 标题
 @param message 说明
 @param btns 按钮数组
 @param placeholders placeholder数组
 @param block 回调
 */
+(void)showAlertTextFieldViewWithTitle:(NSString*)title message:(NSString*)message btns:(NSArray*)btns placeholders:(NSArray *)placeholders block:(void(^)(NSInteger index , NSArray *texts))block;
/**
 弹出一个AlertView title默认为提示   无回调
 
 @param message 提示内容
 */
+ (void)alertWithMessage:(NSString *)message;


/**
 统一弹窗
 
 @param message message description
 @param block block description
 */
+ (void)alertWithMessage:(NSString *)message block:(dispatch_block_t)block;

/**
 弹出一个SheetView - iPad专用
 
 @param title 标题
 @param message 说明
 @param btns 按钮数组
 @param view 所指向的View
 @param block 对应数组位置的回调
 */
+(void)showiPadSheetViewWithTitle:(NSString*)title message:(NSString*)message  btns:(NSArray*)btns view:(UIView*)view block:(void(^)(NSInteger index))block;

/**
 弹出一个SheetView - iPhone专用
 
 @param title 标题
 @param message 说明
 @param btns 按钮数组
 @param block 对应数组位置的回调
 */
+(void)showiPhoneSheetViewWithTitle:(NSString*)title message:(NSString*)message  btns:(NSArray*)btns  block:(void(^)(NSInteger index))block;

/**
 弹出一个系统Alert
 
 @param title 标题
 @param msg 说明
 @param buttons 按钮数组
 @param block 对应数组位置的回调
 */
+ (void)showSystemAlertWithTitle:(NSString *)title msg:(NSString *)msg buttons:(NSArray *)buttons block:(void(^)(NSInteger index))block;

/**
 弹出一个自定义图片的Alert
 
 @param image 弹出状态
 @param title 标题
 @param msg 说明
 @param cancelTitle 左侧按钮
 @param confirmTitle 右侧按钮
 @param block 对应数组位置的回调
 */
+ (void)showCustomAlertWithStype:(DGGTipStyle)style image:(NSString *)image title:(NSString *)title msg:(NSString *)msg cancelTitle:(NSString *)cancelTitle
                    confirmTitle:(NSString *)confirmTitle
                           block:(void(^)(NSInteger index))block;

/**
 弹出局部旋转加载圈
 @param superVie 加到某个View上
 @param loadingColor 加载loading颜色
 @param message 加载文字
 @param radius 加载圈大小 默认24
 */
+ (void)showLoadingViewWithSuperView:(UIView *)superVie
                        loadingColor:(UIColor *)loadingColor
                         message:(NSString *)message
                          radius:(CGFloat)radius;
/**
 弹出全局旋转加载圈
 @param superVie 加到某个View上
@param loadingColor 加载loading颜色
 @param message 加载文字
 @param radiusw 加载圈大小 默认24
 */
+ (void)showLoadingAllViewWithSuperView:(UIView *)superVie
                           loadingColor:(UIColor *)loadingColor
                                message:(NSString *)message
                                 radius:(CGFloat)radiusw;
/*
 隐藏loading加载圈
 */
+ (void)hideLoadingViewInSuperView:(UIView *)superVie;

/**
弹出局部旋转加载圈   非单例实现
*/
+ (void)showLoadingViewWithoutSingTonWithSuperView:(UIView *)superVie
                        loadingColor:(UIColor *)loadingColor
                             message:(NSString *)message
                                            radius:(CGFloat)radius;
/**
弹出局部旋转加载圈   非单例实现
*/
+ (void)showLoadingAllViewWithoutSingTonWithSuperView:(UIView *)superVie
                           loadingColor:(UIColor *)loadingColor
                                message:(NSString *)message
                                               radius:(CGFloat)radius;

/**
 弹出全局旋转加载框
 @param superView 加到某个View上
 */
+ (void)showLoadingAllViewToastWithSuperView:(UIView *)superView;

/**
 弹出全局旋转加载框
 默认视图
 */
+ (void)showLoadingAllViewToast;

@end
